/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

//ENVIO LINK SERVIDOR
//html: "<a href=file:///C:/Users/Guillermo/Documents/NetBeansProjects/IS2/trunk/Cliente_Subastas/public_html/comprobacionAlta.html><b>Pincha en el siguiente enlace para confirmar tu alta de usuario.</b></a>" // html body

var urlParams;
(window.onpopstate = function() {
    var match,
            pl = /\+/g, // Regex for replacing addition symbol with a space
            search = /([^&=]+)=?([^&]*)/g,
            decode = function(s) {
        return decodeURIComponent(s.replace(pl, " "));
    },
            query = window.location.search.substring(1);

    urlParams = {};
    while (match = search.exec(query))
        urlParams[decode(match[1])] = decode(match[2]);

    console.log(urlParams);
})();

$(document).ready(function() {

    $("#formularioAlta").submit(function(e) {
        e.preventDefault();
    });

    var nombreUsuario = obtenerCookie("nombreUsuario");
    var tipoUsuario = obtenerCookie("tipoDeUsuario");
    if (nombreUsuario === null || nombreUsuario === "") {
        $("#wSignin").attr("class", "");
        $("#wLogin").attr("class", "");
        $("#wOpciones").hide();
        $("#wLogout").hide();
        $("#wPerfil").hide();
        $("#wAltaProducto").hide();
        $("#wAltaUsuarioInterno").hide();
        $("#wBuscarProducto").hide();
        $("#wGestionUsuarios").hide();
        //hide para visualizar perfil.      
    } else if (tipoUsuario === "externo") {
        $("#wSignin").hide();
        $("#wLogin").hide();
        $("#wOpciones").attr("class", "");
        $("#wLogout").attr("class", "");
        $("#wPerfil").attr("class", "");
        $("#wAltaProducto").hide();
        $("#wAltaUsuarioInterno").hide();
        $("#wBuscarProducto").attr("class", "");
        $("#wGestionUsuarios").hide();
        //show para visualizar perfil.      
    } else if (tipoUsuario === "interno") {
        $("#wSignin").hide();
        $("#wLogin").hide();
        $("#wOpciones").attr("class", "");
        $("#wLogout").attr("class", "");
        $("#wPerfil").attr("class", "");
        $("#wAltaProducto").attr("class", "");
        $("#wAltaUsuarioInterno").hide();
        $("#wBuscarProducto").attr("class", "");
        $("#wGestionUsuarios").attr("class", "");
        //show para visualizar perfil.
    } else if (tipoUsuario === "administrador") {
        $("#wSignin").hide();
        $("#wLogin").hide();
        $("#wOpciones").attr("class", "");
        $("#wLogout").attr("class", "");
        $("#wPerfil").attr("class", "");
        $("#wAltaProducto").attr("class", "");
        $("#wAltaUsuarioInterno").attr("class", "");
        $("#wBuscarProducto").attr("class", "");
        $("#wGestionUsuarios").attr("class", "");
        //show para visualizar perfil..
    }

    $("#categoria").change(function() {
        if ($("#categoria").val() === "Televisión") {
            $("#caracteristica1").attr('placeholder', "Pulgadas");
            $("#caracteristica2").attr('placeholder', "Resolución");
            $("#caracteristica3").attr('placeholder', "Peso");
        } else if ($("#categoria").val() === "Cine") {
            $("#caracteristica1").attr('placeholder', "Año");
            $("#caracteristica2").attr('placeholder', "Tipo de soporte");
            $("#caracteristica3").attr('placeholder', "Género");
        } else if ($("#categoria").val() === "Música") {
            $("#caracteristica1").attr('placeholder', "Género");
            $("#caracteristica2").attr('placeholder', "Año");
            $("#caracteristica3").attr('placeholder', "Artista");
        } else if ($("#categoria").val() === "Videojuegos") {
            $("#caracteristica1").attr('placeholder', "Plataforma");
            $("#caracteristica2").attr('placeholder', "Género");
            $("#caracteristica3").attr('placeholder', "Año");
        } else if ($("#categoria").val() === "Viajes") {
            $("#caracteristica1").attr('placeholder', "Destino");
            $("#caracteristica2").attr('placeholder', "Transporte");
            $("#caracteristica3").attr('placeholder', "Alojamiento");
        } else if ($("#categoria").val() === "Literatura") {
            $("#caracteristica1").attr('placeholder', "Género");
            $("#caracteristica2").attr('placeholder', "Autor");
            $("#caracteristica3").attr('placeholder', "Año");
        } else if ($("#categoria").val() === "Ordenadores") {
            $("#caracteristica1").attr('placeholder', "Tipo");
            $("#caracteristica2").attr('placeholder', "Sistema Operativo");
            $("#caracteristica3").attr('placeholder', "Marca");
        } else if ($("#categoria").val() === "Ropa") {
            $("#caracteristica1").attr('placeholder', "Color");
            $("#caracteristica2").attr('placeholder', "Talla");
            $("#caracteristica3").attr('placeholder', "Marca");
        }
    });

    iniciar();
    iniciarProducto();

});

var websocket = io.connect("http://localhost:6969", {
    'connect timeout': 1000000
});

function iniciar() {

    websocket.on("respuestaAltaUsuario", respuestaAU);
    websocket.on("respuestaLogin", respuestaLogin);
    websocket.on("respuestaComprobacion", respuestaComprobacion);
    websocket.on("respuestaAltaUsuarioInterno", respuestaAltaUsuarioInterno);
    websocket.on("respuestaBusquedaProductosSencilla", respuestaBusquedaProductosSencilla);
    websocket.on("respuestaGestionUsuarios", respuestaGestionUsuarios);
    websocket.on("respuestaDesactivacion", respuestaDesactivacion);
    websocket.on("respuestaPuja", respuestaPuja);
    websocket.on("respuestaComprar", respuestaComprar);

    $("#formularioLogin").submit(function() {
        console.log("Se manda el formulario de login al servidor.");
        websocket.emit("login", $("#formularioLogin").serialize());
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#formularioComprobacion").submit(function() {
        console.log("Se manda el formulario de comprobacion al servidor.");
        websocket.emit("comprobarDatos", $("#formularioComprobacion").serialize());
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#formularioAlta").submit(function() {
        if ($("input:checked").length === 0) {
            alert("Por favor, acepte los términos y condiciones de usuario para continuar");
        } else if (comprobarContrasenaEmail()) {
            console.log("Se manda el formulario de alta al servidor.");
            websocket.emit("altaUsuario", $("#formularioAlta").serialize());
        }
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#formularioAltaUsuarioInterno").submit(function() {
        if ($("input:checked").length === 0) {
            alert("Por favor, acepte los términos y condiciones de usuario para continuar");
        } else if (comprobarContrasenaEmail()) {
            console.log("Se manda el formulario de alta de usuario interno al servidor.");
            websocket.emit("altaUsuarioInterno", $("#formularioAltaUsuarioInterno").serialize());
        }
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });


    $("#formularioBusquedaSencilla").submit(function() {
        console.log("Se manda el formulario de una busqueda sencilla de producto al servidor.");
        $("#tablaProducto > tbody > *").remove();
        websocket.emit("busquedaProductosSencilla", $("#formularioBusquedaSencilla").serialize());
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#formularioGestionUsuarios").submit(function() {
        console.log("Se manda el formulario de una busqueda de usuario al servidor.");
        $("#tablaUsuario > tbody > *").remove();
        websocket.emit("gestionUsuarios", $("#formularioGestionUsuarios").serialize());
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#botonPujar").click(function() {
        console.log($("#visUltimaPuja").text());
        if (obtenerCookie("puntosPujasUsuario") > parseInt($("#visUltimaPuja").text())) {
            console.log("Se manda la puja del usuario al servidor.");
            websocket.emit("pujar", {idProducto: urlParams["idProducto"], nombreUsuario: obtenerCookie("nombreUsuario")});
        } else {
            alert('No tiene puntos de puja suficientes. Por favor, recargue en el siguiente enlace: <a href=""> Enlace a la recarga de puntos </a>');
        }
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });

    $("#botonComprar").click(function() {
        if (obtenerCookie("puntosAcumuladosUsuario") >= parseInt($("#visPuntosObtencion").text())) {
            console.log("Se manda la compra del usuario al servidor.");
            if (confirm("¿Quiere confirmar la compra de este producto?")) {
                websocket.emit("comprar", {idProducto: urlParams["idProducto"], nombreUsuario: obtenerCookie("nombreUsuario")});
            }
        } else {
            if (confirm('No tiene puntos de compra acumulados suficientes. Por favor, siga participando en más subastas para acumular puntos. ¿Quiere volver a la página de inicio?'))
                location.href = "index.html";
        }
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    });


}

function iniciarProducto() {

    switch (urlParams["tipo"]) {
        case "subasta":
            $("#botonComprar").hide();
            $("#visTextoCompra").hide();
            $('#visUltimaPuja').text(urlParams["puntosUltimaPuja"]);
            //Tratamiento del tiempo restante de la subasta
            var fechaInicio = new Date(urlParams["fechaInicio"]);
            var fechaFinal = new Date(urlParams["tiempoRestante"]);
            var year = fechaFinal.getFullYear().toString();
            var month = fechaFinal.getMonth() + 1;
            month = month.toString();
            var day = fechaFinal.getDate().toString();
            var fecha = year + "/" + month + "/" + day;
            //---------
            var fechaActual = new Date();
            if (fechaInicio > fechaActual) {
                var year2 = fechaInicio.getFullYear().toString();
                var month2 = fechaInicio.getMonth() + 1;
                month2 = month2.toString();
                var day2 = fechaInicio.getDate().toString();
                fechaInicio = year2 + "-" + month2 + "-" + day2;
                $('#clock').text("La subasta aún no ha comenzado. Comenzará en la siguiente fecha: " + fechaInicio);
                $("#botonPujar").hide();
                $("#visDueno").hide();
                $("#divUltimaPuja").hide();
            } else if (fechaActual > fechaFinal) {
                fechaFinal = year + "-" + month + "-" + day;
                if (urlParams["dueno"] === "null")
                    $('#clock').text("Nadie ha ganado este producto. Se han realizado " + urlParams["cantidadPujas"] + " pujas");
                else
                    $('#clock').text("El ganador de la subasta ha sido " + urlParams["dueno"] + ". Se han realizado " + urlParams["cantidadPujas"] + " pujas");
                $("#botonPujar").attr("disabled", "disabled");
                $("#visDueno").hide();
                $("#divUltimaPuja").hide();
            } else {
                $('#clock').countdown(urlParams["tiempoRestante"], function(event) {
                    $(this).html(event.strftime('<span class="formatoReloj">%D</span> días ' 
                            + '<span class="formatoReloj">%H</span>'
                            + '<span class="formatoReloj">%M</span>'
                            + '<span class="formatoReloj">%S</span> horas'));
                });
                if (urlParams["dueno"] !== "null") {
                    $('#visDueno').text(urlParams["dueno"]);
                } else {
                    $('#visDueno').text("Sin dueño");
                }
            }
            break;
        case "oferta":
            $("#botonPujar").hide();
            $("#visTextoPuja").hide();
            $("#visPuntosObtencion").text(urlParams["puntosObtencion"]);
            if (urlParams["dueno"] !== "null") {
                $("#botonComprar").attr("disabled", "disabled");
                $('#clock').text("Este producto ya ha sido comprado");
                $('#visDueno').text(urlParams["dueno"]);
            } else {                
                var fechaExpiracion = new Date(urlParams["fechaExpiracion"]);              
                var fechaActual = new Date();
                if (fechaActual > fechaExpiracion) {
                    fechaExpiracion = year + "-" + month + "-" + day;
                    $('#clock').text("Nadie ha comprado este producto. La oferta finalizó el " + fechaExpiracion);
                    $("#botonComprar").attr("disabled", "disabled");
                    $("#visDueno").hide();
                } else {
                    $('#clock').countdown(urlParams["fechaExpiracion"], function(event) {
                        $(this).html(event.strftime('<span class="formatoReloj">%D</span> días ' 
                            + '<span class="formatoReloj">%H</span>'
                            + '<span class="formatoReloj">%M</span>'
                            + '<span class="formatoReloj">%S</span> horas'));
                    });
                    $('#visDueno').text("Sin dueño");
                }
            }
            break;
    }

    $('#visNombreProducto').text(urlParams["nombre"]);
    $('#visImagen').attr("src", urlParams["imagen"]);
    $('#visDescripcion').text(urlParams["descripcion"]);
    $('#visCategoria').text("Categoría: " + urlParams["categoria"]);
    switch (urlParams["categoria"]) {
        case "Televisión":
            $("#visCaracteristica1").text("Pulgadas: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Resolución: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Peso: " + urlParams["caracteristica3"]);
            break;
        case "Cine":
            $("#visCaracteristica1").text("Año: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Tipo de soporte: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Género: " + urlParams["caracteristica3"]);
            break;
        case "Música":
            $("#visCaracteristica1").text("Género: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Año: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Artista: " + urlParams["caracteristica3"]);
            break;
        case "Videojuegos":
            $("#visCaracteristica1").text("Plataforma: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Género: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Año: " + urlParams["caracteristica3"]);
            break;
        case "Viajes":
            $("#visCaracteristica1").text("Destino: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Transporte: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Alojamiento: " + urlParams["caracteristica3"]);
            break;
        case "Literatura":
            $("#visCaracteristica1").text("Género: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Autor: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Año: " + urlParams["caracteristica3"]);
            break;
        case "Ordenadores":
            $("#visCaracteristica1").text("Tipo: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("Sistema Operativo: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Marca: " + urlParams["caracteristica3"]);
            break;
        case "Ropa":
            $("#visCaracteristica1").text("Color: " + urlParams["caracteristica1"]);
            $("#visCaracteristica2").text("ResoluciónTalla: " + urlParams["caracteristica2"]);
            $("#visCaracteristica3").text("Talla: " + urlParams["caracteristica3"]);
            break;
    }
}

function respuestaAU(datosServidor) {
    if (datosServidor === "200") {
        alert("Se le ha enviado un correo electrónico a la dirección facilitada. Por favor revise su bandeja de entrada.");
    } else if (datosServidor === "404") {
        alert("No es posible dar de alta a un usuario con esos datos. Por favor vuélvalo a intentar revisando todos los campos.");
    } else if (datosServidor === "401") {
        alert("El email introducido ya ha sido utilizado. Por favor proporcione uno distinto.");
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaLogin(datosServidor) {
    console.log("Recibido mensaje del servidor en login: " + datosServidor);
    if (datosServidor.codigo === "200") {
        console.log("Entra en el if de 200");
        //history.back(); //location.href ="";
        cambiarCookie("nombreUsuario", datosServidor.nombreUsuario, 100);
        cambiarCookie("tipoDeUsuario", datosServidor.tipo, 100);
        if(datosServidor.tipo === "externo"){
            cambiarCookie("puntosPujasUsuario", datosServidor.puntosPujas, 100);
            cambiarCookie("puntosAcumuladosUsuario", datosServidor.puntosAcumulados, 100);
        }else{
            cambiarCookie("puntosPujasUsuario", 0, 100);
            cambiarCookie("puntosAcumuladosUsuario", 0, 100);
        }
        history.back();
    } else if (datosServidor.codigo === "404") {
        console.log("Entra en el if de 404");
        alert("Los datos introducidos no son correctos. Por favor vuélvalo a intentar revisando sus datos.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    } else if (datosServidor.codigo === "402") {
        console.log("Entra en el if de 402");
        alert("Su usuario no ha sido comprobado mediante el link de su correo. Por favor, revise su correo y termine su alta de usuario.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    }
    else if (datosServidor.codigo === "406") {
        console.log("Entra en el if de 406");
        alert("Su usuario ha sido desactivado por los administradores del sistema.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    }
}

function respuestaComprobacion(datosServidor) {
    console.log("Recibido mensaje del servidor en comprobar: " + datosServidor);
    if (datosServidor === "200") {
        alert("Su usuario ha sido confirmado correctamente. Ya tiene la posibilidad de iniciar sesión en nuestra página.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    } else if (datosServidor === "404") {
        alert("No se ha podido confirmar su usuario. Por favor vuélvalo a intentar revisando sus datos.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    } else if (datosServidor === "403") {
        alert("Este usuario ya ha sido confirmado en nuestro sistema. Ya tiene la posibilidad de iniciar sesión en nuestra página.");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    }

}

function respuestaAltaUsuarioInterno(datosServidor) {
    console.log("Recibido mensaje del servidor en respuesta alta usuario interno: " + datosServidor);
    if (datosServidor === "200") {
        alert("Su usuario interno ha sido dado de alta correctamente.");
    } else if (datosServidor === "404") {
        alert("No es posible dar de alta a un usuario interno con esos datos. Por favor vuélvalo a intentar revisando todos los campos.");
    } else if (datosServidor === "401") {
        alert("El email introducido ya ha sido utilizado. Por favor proporcione uno distinto.");
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaBusquedaProductosSencilla(datosServidor) {
    console.log("Recibido mensaje del servidor en respuesta busqueda productos sencilla: " + datosServidor);
    if (datosServidor.codigo === "200") {
        if (datosServidor.tipo === "subasta") {
            //Tratamiento del tiempo restante de la subasta
            var fechaInicio = new Date(datosServidor.fechaInicio);
            var horasRestantes = datosServidor.opcion.substring(0, datosServidor.opcion.indexOf(":"));
            horasRestantes = parseInt(horasRestantes);
            var msRestantes = horasRestantes * 3600000;
            var fechaFinal = new Date(msRestantes + fechaInicio.getTime());
            var year = fechaFinal.getFullYear().toString();
            var month = fechaFinal.getMonth() + 1;
            month = month.toString();
            var day = fechaFinal.getDate().toString();
            var fecha = year + "/" + month + "/" + day;
            //---------
            var fechaActual = new Date();
            var subastaEmpezada = 1;
            if (fechaInicio > fechaActual) {
                subastaEmpezada = 0;
                var year2 = fechaInicio.getFullYear().toString();
                var month2 = fechaInicio.getMonth() + 1;
                month2 = month2.toString();
                var day2 = fechaInicio.getDate().toString();
                fechaInicio = year2 + "-" + month2 + "-" + day2;
                var mensajeSubasta = "La subasta aún no ha comenzado. Comenzará en la siguiente fecha: " + fechaInicio;
            }
            if (fechaActual > fechaFinal) {
                subastaEmpezada = 0;
                var year3 = fechaFinal.getFullYear().toString();
                var month3 = fechaFinal.getMonth() + 1;
                month3 = month3.toString();
                var day3 = fechaFinal.getDate().toString();
                fechaFinal = year3 + "-" + month3 + "-" + day3;
                var mensajeSubasta = "La subasta finalizó en la siguiente fecha: " + fechaFinal;
            }
            var tds = '<tr>' + '<td><a href=/visualizarProducto.html?idProducto=' + datosServidor.idProducto + '&nombre=' + datosServidor.nombre.replace(/ /gi, "+")
                    + '&imagen=' + datosServidor.imagen.replace(/ /gi, "+") + '&descripcion=' + datosServidor.descripcion.replace(/ /gi, "+")
                    + '&dueno=' + datosServidor.dueno + '&tiempoRestante=' + fecha + '&fechaInicio=' + datosServidor.fechaInicio
                    + '&puntosUltimaPuja=' + datosServidor.puntosUltimaPuja + '&cantidadPujas=' + datosServidor.cantidadPujas
                    + '&categoria=' + datosServidor.categoria + '&caracteristica1=' + datosServidor.caracteristica1.replace(/ /gi, "+")
                    + '&caracteristica2=' + datosServidor.caracteristica2.replace(/ /gi, "+") + '&caracteristica3=' + datosServidor.caracteristica3.replace(/ /gi, "+")
                    + '&tipo=' + datosServidor.tipo + '>' + datosServidor.nombre + '</a></td>';
            tds += '<td> <div style=" word-wrap: break-word;max-width:200px; width:200px;">'
                    + datosServidor.descripcion + '</div> </td>' + '<td> <img src="' + datosServidor.imagen
                    + '" alt="120x120" class="img-thumbnail" style=" word-wrap: break-word;max-width:200px; width:200px;"> </td>';
            if (subastaEmpezada === 1) {
                tds += '<td id="clock' + datosServidor.idProducto + '">' + '</td>' + '<td>' + datosServidor.fechaCreacion.substring(0, 10) + '</td>' + '</tr>';
                tds += "<script> $('#clock" + datosServidor.idProducto + "').countdown('" + fecha + "', function(event) { $(this).html(event.strftime('%D días %H:%M:%S horas')); }); </script>"
            } else {
                tds += '<td>' + mensajeSubasta + '</td>' + '<td>' + datosServidor.fechaCreacion.substring(0, 10) + '</td>' + '</tr>';
            }
            $("#tablaProducto").append(tds);
        } else if (datosServidor.tipo === "oferta") {
            
            var fecha = datosServidor.fechaExpiracion.substring(0,10);
            var fecha2 = fecha.replace(/-/gi, "/");
            var tds = '<tr>' + '<td><a href=/visualizarProducto.html?idProducto=' + datosServidor.idProducto + '&nombre=' + datosServidor.nombre.replace(/ /gi, "+")
                    + '&imagen=' + datosServidor.imagen.replace(/ /gi, "+") + '&descripcion=' + datosServidor.descripcion.replace(/ /gi, "+")
                    + '&dueno=' + datosServidor.dueno + '&puntosObtencion=' + datosServidor.opcion + '&fechaExpiracion=' + fecha2
                    + '&categoria=' + datosServidor.categoria + '&caracteristica1=' + datosServidor.caracteristica1.replace(/ /gi, "+")
                    + '&caracteristica2=' + datosServidor.caracteristica2.replace(/ /gi, "+") + '&caracteristica3=' + datosServidor.caracteristica3.replace(/ /gi, "+")
                    + '&tipo=' + datosServidor.tipo + '>' + datosServidor.nombre + '</a></td>';
            tds += '<td> <div style=" word-wrap: break-word;max-width:200px; width:200px;">'
                    + datosServidor.descripcion + '</div> </td>' + '<td> <img src="' + datosServidor.imagen
                    + '" alt="120x120" class="img-thumbnail" style=" word-wrap: break-word;max-width:200px; width:200px;"> </td>';
            
            if (datosServidor.dueno !== null) {                
                tds += '<td> Este producto ya ha sido comprado </td>';
                tds += '<td>' + datosServidor.fechaCreacion.substring(0, 10) + '</td>' + '</tr>';               
            } else {                
                var fechaExpiracion = new Date(datosServidor.fechaExpiracion);              
                var fechaActual = new Date();
                if (fechaActual > fechaExpiracion) {
                    fechaExpiracion = year + "-" + month + "-" + day;
                    tds += '<td> Nadie ha comprado este producto. La oferta finalizó el ' + fecha + '</td>';
                    tds += '<td>' + datosServidor.fechaCreacion.substring(0, 10) + '</td>' + '</tr>';
                } else {
                    tds += '<td>' + datosServidor.opcion + " puntos" + '</td>' + '<td>' + datosServidor.fechaCreacion.substring(0, 10) + '</td>' + '</tr>';                    
                }
            }            
            $("#tablaProducto").append(tds);
        }
    } else if (datosServidor.codigo === "404") {
        alert("No es posible realizar la búsqueda de producto en este momento.");
    } else if (datosServidor.codigo === "405") {
        console.log("Producto no encontrado.");
        //$("#tablaProducto").hide();
        var tds = '<tr>' + '<td>' + 'Producto no encontrado' + '</td>' + '</tr>';
        $("#tablaProducto").append(tds);
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaGestionUsuarios(datosServidor) {
    console.log("Recibido mensaje del servidor en respuesta gestion usuarios: " + datosServidor);
    if (datosServidor.codigo === "200") {
        var tds = '<tr>' + '<td>' + datosServidor.nombreUsuario + '</td>' + '<td>' + datosServidor.nombre + '</td>'
                + '<td>' + datosServidor.apellidos + '</td>' + '<td>' + datosServidor.puntosPujas + '</td>';
        if (datosServidor.estaDesactivado === 1) {
            console.log("Entra en desactivado === 1");
            tds += '<td>' + 'Desactivado' + '</td>';
        } else if (datosServidor.estaDesactivado === 0) {
            console.log("Entra en desactivado === 0");
            tds += '<td id="' + datosServidor.idUsuario + '">' + '<button type="button" class="btn btn-danger" onClick="desactivar(' + datosServidor.idUsuario + ')">Desactivar</button>' + '</td>';
        }
        console.log("Ha pasado el if de desactivado");
        tds += '</tr>';
        $("#tablaUsuario").append(tds);
    } else if (datosServidor.codigo === "404") {
        alert("No es posible realizar la búsqueda de usuarios en este momento.");
    } else if (datosServidor.codigo === "405") {
        console.log("Usuario no encontrado.");
        var tds = '<tr>' + '<td>' + 'Usuario no encontrado' + '</td>' + '</tr>';
        $("#tablaUsuario").append(tds);
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaDesactivacion(datosServidor) {
    console.log("Recibido mensaje del servidor en respuesta a la desactivación del usuario " + datosServidor.idUsuarioExterno);
    if (datosServidor.codigo === "200") {
        $("#" + datosServidor.idUsuarioExterno + " > button").remove();
        var tds = '<td>' + 'Desactivado' + '</td>';
        $("#" + datosServidor.idUsuarioExterno).append(tds);
    } else if (datosServidor.codigo === "404") {
        alert("No ha sido posible desactivar el usuario en este momento.");
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaPuja(datosServidor) {
    console.log("Recibido mensaje del servidor en respuesta a la puja de " + datosServidor.dueno);
    if (datosServidor.codigo === "200") {

        var fechaInicio = new Date(urlParams["fechaInicio"]);
        var horasRestantes = datosServidor.tiempoRestante.substring(0, datosServidor.tiempoRestante.indexOf(":"));
        horasRestantes = parseInt(horasRestantes);
        var msRestantes = horasRestantes * 3600000;
        var fechaFinal = new Date(msRestantes + fechaInicio.getTime());
        urlParams["tiempoRestante"] = fechaFinal;
        urlParams["dueno"] = datosServidor.dueno;
        urlParams["puntosUltimaPuja"] = datosServidor.puntosUltimaPuja;
        urlParams["cantidadPujas"] = datosServidor.cantidadPujas;
        console.log(urlParams);
        $('#clock').countdown(fechaFinal, function(event) {
            $(this).html(event.strftime('%D días %H:%M:%S horas'));
        });
        if (datosServidor.nombreUsuario !== "null") {
            $('#visDueno').text(datosServidor.dueno);
        } else {
            $('#visDueno').text("Sin dueño");
        }
        $('#visUltimaPuja').text(datosServidor.puntosUltimaPuja);
        cambiarCookie("puntosPujasUsuario", parseInt(obtenerCookie("puntosPujasUsuario"))-1, 100);
        cambiarCookie("puntosAcumuladosUsuario", parseInt(obtenerCookie("puntosAcumuladosUsuario"))+1, 100);
    } else if (datosServidor.codigo === "404") {
        alert("No ha sido posible realizar la puja en este momento.");
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function respuestaComprar(datosServidor){
    console.log("Recibido mensaje del servidor en respuesta a la puja de " + datosServidor.dueno);
    if (datosServidor.codigo === "200" && datosServidor.dueno===obtenerCookie("nombreUsuario")) {
        cambiarCookie("puntosAcumuladosUsuario",datosServidor.puntosAcumulados,100);
        location.href = "finalizacionCompra.html";
    } else if (datosServidor.codigo === "200" && datosServidor.dueno!==obtenerCookie("nombreUsuario")) {
        alert("El producto acaba de ser comprado por " + datosServidor.dueno);
        $("#botonComprar").attr("disabled", "disabled");
        $('#clock').countdown('stop');
        $('#clock').text("Este producto ya ha sido comprado");
        urlParams["dueno"] = datosServidor.dueno;
        $('#visDueno').text(datosServidor.dueno);       
    } else if (datosServidor.codigo === "404") {
        alert("No ha sido posible realizar la compra en este momento.");
    }
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function logout() {
    cambiarCookie("nombreUsuario", "", -1);
    cambiarCookie("tipoDeUsuario", "", -1);
    cambiarCookie("puntosPujasUsuario", "", -1);
    cambiarCookie("puntosAcumuladosUsuario", "", -1);
}

function desactivar(idUsuario) {
    console.log("idUsuario pasado en desactivar: " + idUsuario);
    websocket.emit("desactivarUsuario", {ideUsuario: idUsuario});
    return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
}

function comprobarContrasenaEmail() {
    var con1 = $("#contrasena1");
    var con2 = $("#contrasena2");
    var em1 = $("#email1");
    var em2 = $("#email2");
    var resultado = false;

    if (con1.val() === con2.val() & em1.val() === em2.val()) {
        //alert("Contraseñas y Emails OK" + con1.val() + con2.val() + em1.val() + em2.val());
        resultado = true;
    } else if (con1.val() !== con2.val() & em1.val() === em2.val()) {
        alert("Las contraseñas introducidas no son iguales");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    } else if (con1.val() === con2.val() & em1.val() !== em2.val()) {
        alert("Los emails introducidos no son iguales");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    } else {
        alert("Las contraseñas y los emails introducidos no son iguales");
        return false;//Para evitar que la página se vuelva a cargar después de un submit o un alert.
    }
    return resultado;
}

function cambiarCookie(cNombre, valor, exDias) {
    var exFecha = new Date();
    exFecha.setDate(exFecha.getDate() + exDias);
    var cValor = escape(valor) + ((exDias === null) ? "" : "; expires=" + exFecha.toUTCString());
    document.cookie = cNombre + "=" + cValor;
}

function obtenerCookie(cNombre) {
    var c_value = document.cookie;
    var c_start = c_value.indexOf(" " + cNombre + "=");
    if (c_start === -1) {
        c_start = c_value.indexOf(cNombre + "=");
    }
    if (c_start === -1) {
        c_value = null;
    } else {
        c_start = c_value.indexOf("=", c_start) + 1;
        var c_end = c_value.indexOf(";", c_start);
        if (c_end === -1) {
            c_end = c_value.length;
        }
        c_value = unescape(c_value.substring(c_start, c_end));
    }
    return c_value;
}

function esCookie(cNombre) {
    var nombre = obtenerCookie(cNombre);
    return (nombre !== null && nombre !== "");
}